<?php
namespace app\admin\controller;
use think\Controller;
use think\Db;
use app\admin\model\Base;
use think\Model;
class Node extends Common
{
    //表名
    public $table='node';
    //实例化模型对象
    public $obj='';
    public function _initialize()
    {
        //单例模式创建对象
        $this->check();
        //初始化数据
        parent::_initialize();
    }
    public function show(){
        // 查询状态为1的用户数据 并且每页显示10条数据
        $list = Db::table('node')->paginate(10);
        // 获取分页显示
        $page = $list->render();
        // 模板变量赋值
        $list=$list->toArray();
        $list=$list['data'];
        //dump($list);die;
        $this->assign('list', $list);
        $this->assign('page', $page);
        // 渲染模板输出
        return $this->fetch();
    }
    /**
     * @return string
     * 判断对象事是否存在
     */
    public function check(){
        //对象不存在则实例化对象
        if($this->obj==""){
            $this->obj=new Base();
        }else{
            //对象存在返回对象
            return $this->obj;
        }
    }

    /*
     * 添加节点方法
     *
     *
     * */
    public function add()
    {
            $nodename = I('nodename');
        if (empty($nodename)) {
            return $this->fetch('add');
        }else{
            $link=I('link');
            $sort=I('sort');
            $data=array(
                'node_name'=>$nodename,
                'url'=>$link,
                'sort'=>$sort
            );
            $rs=Db::table('node')->insert($data);
            if($rs){
                $this->redirect(url($this->controller.'/show'));
            }else{
                $this->error('添加失败');
            }
        }
    }


    /*
     *
     * 删除方法，改变状态逻辑删除
     *
     * */
    public function del($id){
        $id=isset($_POST['id'])?$_POST['id']:"";
        $data = ['sort' => 1];
        $del=new Base();
        $del=$del->status('node',$id,$data);
        echo $del;
    }

    /*
     * 修改节点方法
     *查询node（节点表）进行修改
     * */
    public function update(){
        $nodename=I('nodename');
        if(empty($nodename)){
            $id=I('id');
            $result=Db::table('node')->where('id='.$id)->find();
            $this->assign('node',$result);
            return  $this->fetch('update');
        }else{
            $id=I('id');
            $link=I('link');
            $sort=I('sort');
            $data=array(
                'node_name'=>$nodename,
                'url'=>$link,
                'sort'=>$sort
            );
            $rs=Db::table('node')->where('id='.$id)->update($data);
            if($rs){
                $this->redirect(url($this->controller.'/show'));
            }else{
                $this->error('修改失败');
            }
        }
    }

    /**
     * @param $id
     * @param $status
     * 启用，禁用公共方法
     */
    public function change($id,$sort) {
        if($sort=='0'){
            $data=array("sort"=>'1');
        }else{
            $data=array("sort"=>'0');
        }
        $result=Db::table('node')->where('id='.$id)->update($data);
        if($result){
            if ( $sort == 1 ) {
                $sort = 0;
            } else {
                $sort = 1;
            }
            $arr=array('sort'=>$sort,'id'=>$id);
            return $arr;
        }
        return [];
    }
}